1. Field of the Invention
The present invention relates to application programming interfaces (APIS) for computer systems. More specifically, the present invention relates to a method and an apparatus for modifying an application by customizing methods defined within an API for the application to include additional business logic and/or to specify additional data sources.
2. Related Art
As businesses scramble to exploit the potential efficiencies that arise through the use of information technology, numerous business processes are becoming computerized. This trend has led to an explosion in the development of software packages to facilitate specific business processes. Unfortunately, organizations are typically unable to make use of off-the-shelf applications to facilitate a specific business process because the requirements of a specific business process are typically dictated by requirements of a specific type of business and a specific organizational structure. Hence, a business is typically forced to develop its own software package for a specific business process. This typically entails employing expensive teams of programmers and/or consultants to develop, debug and maintain the software package.
The process of developing a software package can consume a great deal of time and can distract management from focussing on the main line of a business. Furthermore, a software package must be continually maintained and updated, which can require additional commitments of time and financial resources.
For example, a company may want to design a software package to facilitate a xe2x80x9chelp deskxe2x80x9d for computer system support. A completely off-the-shelf help desk system is typically not practical to use because different organizations have different requirements. For example, one company may want to tie a help desk system into a specific inventory database to keep track of parts that are used in fixing a computer system. Another company may want to use the help desk system to facilitate automatic purchasing for parts. Yet another company may want to use the help desk system to track equipment faults.
However, note that building a completely new software system from the ground up for each company is wasteful because many elements of a help desk system can be shared between different organizations.
Hence, what is needed is a method and an apparatus that facilitates customizing an off-the-shelf software system to fulfill specific requirements of a specific business process for a specific organization.
One embodiment of the present invention provides a system that facilitates customizing a software package by modifying an implementation of a target method defined within an application programming interface for the software package. The system operates by receiving additional code to be integrated into a target method defined within the application programming interface, wherein the application programming interface defines a plurality of methods that operate on objects. The system also receives a command to integrate the additional code into the target method within the application programming interface. This command is received through a pre-defined code integration method within the application programming interface. In response to this command, the system links the additional code into the target method within the application programming interface so that the additional code is executed when the target method is invoked.
In one embodiment of the present invention, the application programming interface defines: a method that creates an object; a method that deletes the object; a method that fetches the object; and a method that updates the object.
In one embodiment of the present invention, the object includes: an object associated with a help desk; an object associated with a client of the help desk; an object associated with a support staff member associated with the help desk; an object associated with an inventory item for the help desk; and an object associated with a subject of a help desk ticket.
In one embodiment of the present invention, the additional code causes the target method to operate on data from an alternative data source.
In one embodiment of the present invention, the predefined code integration method integrates the additional code so that it is executed prior to executing default code for the target method.
In one embodiment of the present invention, the predefined code integration method integrates the additional code so that it is executed after executing default code for the target method.
In one embodiment of the present invention, the application programming interface is implemented in a middle tier of a three-tier distributed computing architecture, which includes: a client tier for interacting with users; the middle tier for performing business logic functions; and a database tier for storing data.
In one embodiment of the present invention, the application programming interface is defined within a common object model (COM) object.